package com.whmall.service.crm.module.company.service;

import com.whmall.component.entity.dto.CompanyKeyFieldDTO;
import com.whmall.component.entity.dto.OperatorReqDTO;
import com.whmall.service.crm.entity.dto.company.CompanyIndustryTypeCreateOrUpdateDTO;
import com.whmall.service.crm.entity.dto.company.CompanyIndustryTypeRspDTO;
import com.whmall.service.crm.entity.dto.company.CompanyTypeRspDTO;
import com.whmall.service.crm.module.company.entity.CompanyIndustryTypeDO;
import com.whmall.component.service.DbService;

import java.util.List;
import java.util.Map;

public interface CompanyIndustryTypeService extends DbService<CompanyIndustryTypeDO>{


    /**
     * 新增或编辑公司行业类型
     * @param createOrUpdateDTO
     * @param operatorReqDTO
     */
    void saveOrUpdate(CompanyIndustryTypeCreateOrUpdateDTO createOrUpdateDTO, OperatorReqDTO operatorReqDTO);

    /**
     * 获取公司行业类型
     * @param companyIdList
     * @return
     */
    Map<Long, List<CompanyIndustryTypeRspDTO>> getByCompanyIds(List<Long> companyIdList);

    /**
     * 获取公司行业类型
     * 包含所有类型拼接字段
     * @param companyIdList
     * @return
     */
    Map<Long,CompanyTypeRspDTO> getTypesByCompanyIds(List<Long> companyIdList);

    /**
     * 获取公司行业类型字符串拼接结果
     * @param companyIdList
     * @return
     */
    Map<Long,String> getTypeStrByCompanyIds(List<Long> companyIdList);



    /**
     * 通过ids 查询是否存在共享锁
     * @param ids
     * @return
     */
    Boolean selectByIdsShareLock(List<Long> ids);
}